1. Field of the Invention
The present invention relates to switching of data packets in a non-blocking network switch configured for switching data packets between subnetworks.
2. Background Art
Local area networks use a network cable or other media to link stations on the network. Each local area network architecture uses a media access control (MAC) enabling network interface devices at each network node to access the network medium.
The Ethernet protocol IEEE 802.3 has evolved to specify a half-duplex media access mechanism and a full-duplex media access mechanism for transmission of layer 2 type data packets. A layer 2 type data frame (also referred to as a layer 2 type data packet) is defined as a data frame having a layer 2 header (e.g., Ethernet), a corresponding payload, and a cyclic redundancy check field (also referred to as a frame check sequence field) having a value based on the layer 2 header and the corresponding payload. The fill-duplex media access mechanism provides a two-way, point-to-point communication link between two network elements, for example between a network node and a switched hub.
Switched local area networks are encountering increasing demands for higher speed connectivity, more flexible switching performance, and the ability to accommodate more complex network architectures. For example, commonly-assigned U.S. Pat. No. 5,953,335 discloses a network switch configured for switching layer 2 type Ethernet (IEEE 802.3) data packets between different network nodes; a received layer 2 type data packet may include a VLAN (virtual LAN) tagged frame according to IEEE 802.1p (802.1D) protocol that enables the network switch to perform more advanced switching operations. For example, the VLAN tag may specify another subnetwork (via a router) or a prescribed group of stations.
A newer protocol, known as IEEE 802.1ad, specifies a trunking technique that enables two or more point-to-point connections between the same two devices to be treated as a single network link. Trunking can be used to obtain linearly incremental bandwidth in unit multiples, and provides load sharing so that client traffic may be distributed across multiple links; if one of the links fails, link aggregation will converge to a new configuration. The protocol IEEE 802.1ad specifies certain requirements, for example packets belonging to the same conversation may not be reordered, although conversations may be moved among ports within an aggregation, both for load sharing and for availability; in addition, mechanisms for trunking cannot support aggregations among the more than two systems. In addition, IEEE 802.1ad specifies that link aggregation is supported only on point-to-point links using IEEE 802.3 MACs in full duplex mode and each operating at the same data rate.
As described above, the increasing demands for improved performance on an integrated network switch affects the complexity, size, performance, and hence cost of the integrated network switch. Hence, the addition of trunking support within an integrated network switch requires an efficient implementation that will not adversely affect the wire rate performance of the integrated network switch.
There is a need for an arrangement that enables a network switch to perform trunk-based switching of layer 2 type data packets. In particular, there is a need for an arrangement that enables a network switch to perform switching of layer 2 type data packets according to trunking protocols.
These and other needs are attained by the present invention, where a network switch includes network switch ports, and switching logic for determining the output port for each received layer 2 type data packet. The switching logic includes an address table configured for storing address-based switching decisions, a trunk table configured for assigning each network switch port to a corresponding identified trunk, and a trunk distribution table identifying the network switch ports assigned to each identified trunk. The switching logic determines the output port for each corresponding received layer 2 type data packet based on a corresponding switching decision for the received layer 2 type data packet, and based on selection of an entry in the trunk distribution table based on information within the received layer 2 type data packet. Hence, the network switch is able to perform trunk-based switching with minimal complexity, ensuring switching of data packets at the wire rate.
One aspect of the present invention provides a method in an integrated network switch having switch ports, the method comprising receiving a data frame by an integrated network switch, and generating a switching decision. The switching decision is generated by identifying a first output switch port from an address table based on address information within the data frame, identifying a trunk served by the first output switch port, and selecting from a trunk distribution table a final output switch port for the data frame based on the identified trunk and selected information within the data frame. The selection of a final output switch port from the trunk distribution table based on the identified trunk and selected information within the data frame enables data frames for a prescribed flow, as specified in the selected information, to be output to the same final output switch port of the identified trunk. In addition, the selection of a final output switch port from a trunk distribution table enables the output of data frames for an identified trunk to be evenly distributed across the output switch ports serving the identified trunk. Hence, trunk-based switching may be implemented in an integrated network switch with minimal complexity.
Another aspect of the present invention provides a network switch comprising a plurality of network switch ports, each configured for receiving a layer 2 type data frame, and a switching module. The switching module includes an address table configured for storing address table entries, each address table entry specifying a network address and at least one corresponding destination switch port. The switching module also includes a trunk distribution table configured for storing, for each of a plurality of identified trunks, the switch ports serving the corresponding identified trunk. The switching module is configured for selecting, from the trunk distribution table, a final output switch port for the received layer 2 type data frame based on identification of the corresponding identified trunk from the destination switch port for the received layer 2 type data frame, and based on a determined attribute in the layer 2 type data frame. The selection of a final output switch port from the trunk distribution table enables the switching module to manage trunk-based traffic based on identified flows and based on address information within the layer 2 type data frame with minimal complexity.
Additional advantages and novel features of the invention will be set forth in part in the description which follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The advantages of the present invention may be realized and attained by means of instrumentalities and combinations particularly pointed in the appended claims.